package dto

import "bridge_viewing/enum"

type BaseParam struct {
	RequestId string `json:"request_id"`
	TraceId   string `json:"trace_id"`
}

func (b BaseParam) GetTraceId() string {
	return b.TraceId
}

func (b BaseParam) GetRequestId() string {
	return b.RequestId
}

func (b *BaseParam) SetTraceId(traceId string) {
	b.TraceId = traceId
}

func (b *BaseParam) SetRequestId(requestId string) {
	b.RequestId = requestId
}

// BaseReqParam
type BaseReqParam struct {
	BaseParam
	UserId int `json:"user_id"`
}

func (r *BaseReqParam) SetUserId(userId int) {
	r.UserId = userId
}

func (r *BaseReqParam) GetUserId() int {
	return r.UserId
}

type BaseRespParam struct {
	BaseParam
	Code enum.ErrorCode `json:"code"`
	Msg  string         `json:"msg"`
}

func (r *BaseRespParam) SetCode(code enum.ErrorCode) {
	r.Code = code
}

func (r *BaseRespParam) SetMsg(msg string) {
	r.Msg = msg
}

func (r *BaseRespParam) GetCode() enum.ErrorCode {
	return r.Code
}

func (r *BaseRespParam) GetMsg() string {
	return r.Msg
}

type CommonRespParam struct {
	BaseRespParam
	Data any `json:"data"`
}

type CommonPageReq struct {
	BaseReqParam
	PageParam
}
